iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0
Software Development

C語言與C++語言系列 第 4

C語言與C++語言第四天

  • 分享至 

  • xImage
  •  

C語言判斷等腰三角形

我們可以用if來判斷等腰三角形,等腰三角形就是兩邊一樣長,是的話就把結果印出來

#include <stdio.h>
int main(){
    int side1,side2,side3;
    printf("Please enter the the lengths: ");
    scanf("%d%d%d", &side1, &side2, &side3);
    if(side1==side2){
        printf("Isoceles triangle\n");
    }
    if(side1==side3){
       printf("Isoceles triangle\n"); 
    }
    return 0;
}

上面的程式碼中,要注意的是不行打side1=side2這是把右邊的值帶到左邊的意思,要==這樣才是等於的意思,如果有一邊等於另一邊,就會印出Isoceles triangle等腰直角三角形,但這邊又遇到一個問題了正三角形,就會顯示兩次Isoceles triangle,要如何只顯示一次呢,下程式碼

#include <stdio.h>
int main(){
    int side1,side2,side3;
    printf("Please enter the the lengths: ");
    scanf("%d%d%d", &side1, &side2, &side3);
    if(side1==side2){
        printf("Isoceles triangle\n");
    }
    if(side1==side3&&side1!=side2){
       printf("Isoceles triangle\n"); 
    }
    return 0;
}

只要我們將第一個等於第二邊但絕對不等於第三邊,這樣正三角行的Isoceles triangle就會只輸出一次了,但這還是有瑕疵,下程式碼

#include <stdio.h>
int main(){
    int side1,side2,side3;
    printf("Please enter the the lengths: ");
    scanf("%d%d%d", &side1, &side2, &side3);
    if(side1==side2||side1==side3){
        printf("Isoceles triangle\n");
    }
    return 0;
}

我們可以用或者的概念,第一邊等於第二邊或者第一邊等於第三邊,不管我們條件多複雜我們只做一次printf,所以最多我們只做一次

C++語言有幾位數

我們可以先想一邊減少n的位數,一邊增加ans的值,和可以用n=n/10減少n的位數

#include<iostream>
using namespace std;
int main()
{
    int n;
    int ans;
    while( cin >> n )
    {
        ans = 0;
        while( n>0 )
        {
            n = n / 10;
            ans = ans+1;
        }
        cout << ans << endl;
    }
    return 0;
}

上面的程式碼中,我們先假設兩個變數,一個要被側有幾位數的n和答案ans,如果這個被側的數字能一直被10除下去,答案就一直加1,除到不能被除10的時候,ans一直加1的最後就是答案
下面有更直觀的解法

#include<iostream>
using namespace std;

int main()
{
    int n;
    while( cin >> n )
    {
        if( n>=1 and n<=9 )
        {
            cout << 1 << endl;
        }
        if( n>=10 and n<=99 )
        {
            cout << 2 << endl;
        }
        if( n>=100 and n<=999 )
        {
            cout << 3 << endl;
        }
        if( n>=1000 and n<=9999 )
        {
            cout << 4 << endl;
        }
        if( n>=10000 and n<=99999 )
        {
            cout << 5 << endl;
        }
        if( n>=100000 and n<=999999 )
        {
            cout << 6 << endl;
        }
    }
    return 0;
}

如果1<=n<=9則為1位數,如果10<=n<=99則為2位數,如果100<=n<=999則為3位數,如果1000<=n<=9999則為 4位數,依此類推


上一篇
C語言與C++語言第三天
下一篇
C語言與C++語言第五天
系列文
C語言與C++語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言